package ts;

import java.util.HashMap;
import java.util.Vector;

public class TablaDeClases {
	public HashMap<String,Clase> clases;
	public static Clase OBJECT;
	public static Constructor CONSTRUCTOR_VACIO;
	public static Clase SYSTEM;
	
	public TablaDeClases() {
		clases = new HashMap<String,Clase>();
		OBJECT = new Clase("Object",true);
		OBJECT.parent = null;
		OBJECT.definida = true;
		OBJECT.cirSize = 1;
		//OBJECT.offset = new HashMap<String,Integer>();
		CONSTRUCTOR_VACIO = new Constructor(new Vector<Variable>());
		CONSTRUCTOR_VACIO.definido = true;
		CONSTRUCTOR_VACIO.declarado = false;
		CONSTRUCTOR_VACIO.etiqueta = "$CtorVacio";
		clases.put("Object", OBJECT);
		OBJECT.constructor = CONSTRUCTOR_VACIO;
		addSystem();
	}
	
	public void add(Clase c) {
		clases.put(c.name, c);
	}
	
	public Clase get(String c) {
		return clases.get(c);
	}
	
	public void print() {
		System.out.println("*** TABLA DE CLASES ***");
		for(Clase c:clases.values()) c.print(); 
	}
	
	private void addSystem() {
		SYSTEM = nkSystem.get();
		//SYSTEM.print();
		clases.put("System", SYSTEM);
		
	}
	
}
 